Clase 6: Máquinas virtuales, Contenedores y GitHub

Diplomado en Data Science para las Ciencias Sociales

Andrés González-Santa Cruz

Estudiante Doctorado en Salud Pública, Investigador joven, nDP

17 de dic, 2024

Recordemos

expandir para código
library(ggplot2)

# Crear los datos
data <- data.frame(
  xstart = c(0, 0.2, 0.4, 0.6, 0.8),
  xend = c(0.2, 0.4, 0.6, 0.8, 1),
  ystart = rep(0, 5),
  yend = rep(1, 5),
  labels = c("Solo publicación", "Código", "Código y datos",
             "Código y datos\nejecutables", "Replicación\ncompleta")
)

# Colores personalizados desde oscuro a claro
#colors <- c("#555555", "#777777", "#999999", "#bbbbbb", "#dddddd")
colors <- c("#4D4D4D", "#B03A2E", "#E74C3C", "#F1948A", "#FADBD8")

# Crear el gráfico
ggplot() +
  # Dibujar las áreas
    geom_rect(data = data, aes(xmin = xstart, xmax = xend, ymin = ystart, ymax = yend, fill = labels), color = NA) +
  scale_fill_manual(values = colors) +
  # Agregar las etiquetas dentro de las áreas
  geom_text(data = data, aes(x = (xstart + xend) / 2, y = 0.5, label = labels), size = 6, family = "Oswald", color = "black") +
  # Agregar flecha de reproducibilidad
  annotate("segment", x = 0, xend = 1, y = -0.1, yend = -0.1, arrow = arrow(type = "closed", ends = "both"), color = "gray") +
  annotate("text", x = 0.1, y = -0.15, label = "No\nreproducible", size = 5, hjust = 0.5, color = "#555555") +
  annotate("text", x = .9, y = -0.15, label = "Estándar\nde oro", size = 5, hjust = 0.5, color = "#555555") +
  # Ajustar límites y tema
  scale_x_continuous(limits = c(0, 1), expand = c(0, 0)) +
  scale_y_continuous(limits = c(-0.2, 1), expand = c(0, 0)) +
  theme_void() +
  theme(
    legend.position = "none",
    text = element_text(family = "Oswald"),
    plot.background = element_rect(fill = "#ffffff", color = NA)
  )
Esquema

Esquema

Máquinas virtuales / Contenedores

Docker y Rocker

Fuente: What is Docker?

Colab

Entramos

Cambiamos el entorno de ejecución (1)

Cambiamos el entorno de ejecución (2)

Desplegamos el código (1)

Desplegamos el código (2)

Saturn Cloud

Entramos

Definimos parámetros, etc.

Elegimos recursos a utilizar

Desplegamos el entorno

Una vez cargado, corremos el entorno

Subimos los datos

Generamos los mismos resultados

Posit Cloud

Entramos y generamos un nuevo proyecto

Subimos los datos

Abrimos los datos

Desplegamos el código

GitHub

Control de Versiones

Importancia

  • Seguimiento de Cambios
  • Historial Histórico
  • Manejo de Versiones
  • Colaboración

Github (2= Conceptos)

  • Repositorio

  • Commit

  • Ramas

  • Fusiones

  • Repositorios remotos

Github (3= GUI)

Flujo de Trabajo en Git

El control de versiones es un enfoque sistemático para gestionar los cambios en archivos a lo largo del tiempo, asegurando organización y colaboración eficiente.

Repositorio con GitHub Desktop

  1. Requisitos Previos:
  2. Siguientes Pasos:
    • Configurar repositorio local y conectar GitHub para iniciar control de versiones.

GitHub (4= SSH)

GitHub (5= Aplicación)

Github Pages

Crear un Repositorio para un Sitio Web con GitHub Pages

  1. Crear el Repositorio:
    • Nombre: nombre-usuario.github.io (reemplaza nombre-usuario con tu nombre de usuario en GitHub).
  2. Configurar GitHub Pages:
    • Ve a Settings > Pages.
    • Selecciona:
      • Rama: main.
      • Carpeta: / (root) o una carpeta específica donde guardarás los archivos del sitio web.
    • Guarda los cambios.
  3. Clonar el Repositorio:
    • Clona el repositorio a una carpeta local en tu equipo usando GitHub Desktop o el comando:

      git clone https://github.com/nombre-usuario/nombre-usuario.github.io.git
  4. Preparar los Archivos del Sitio Web:
    • Asegúrate de incluir un archivo index.html en el repositorio, ya que es necesario para que el sitio web funcione.
  5. Comienza a Trabajar:
    • Edita y agrega archivos según lo necesites para tu sitio web.
    • Sube los cambios al repositorio remoto para que se reflejen en GitHub Pages.

Fuentes

  • Breuer, J., & Aust, F. (2022, 27-28 de Abril). Reproducible research workflows for psychologists: Other topics in reproducible research [Presentation]. KU Leuven. Obtenido desde: https://frederikaust.com/reproducible-research-practices-workshop/slides/7_Other_Topics.html
  • Wembo, J. (2024, 24 de Septiembre). Learn Docker. DataCamp. https://www.datacamp.com/blog/learn-docker

timer.utf8